97 research outputs found
NLP2Code: Code Snippet Content Assist via Natural Language Tasks
Developers increasingly take to the Internet for code snippets to integrate
into their programs. To save developers the time required to switch from their
development environments to a web browser in the quest for a suitable code
snippet, we introduce NLP2Code, a content assist for code snippets. Unlike
related tools, NLP2Code integrates directly into the source code editor and
provides developers with a content assist feature to close the vocabulary gap
between developers' needs and code snippet meta data. Our preliminary
evaluation of NLP2Code shows that the majority of invocations lead to code
snippets rated as helpful by users and that the tool is able to support a wide
range of tasks.Comment: tool demo video available at
https://www.youtube.com/watch?v=h-gaVYtCznI; to appear as a tool demo paper
at ICSME 2017 (https://icsme2017.github.io/
Addressing Compiler Errors: Stack Overflow or Large Language Models?
Compiler error messages serve as an initial resource for programmers dealing
with compilation errors. However, previous studies indicate that they often
lack sufficient targeted information to resolve code issues. Consequently,
programmers typically rely on their own research to fix errors. Historically,
Stack Overflow has been the primary resource for such information, but recent
advances in large language models offer alternatives. This study systematically
examines 100 compiler error messages from three sources to determine the most
effective approach for programmers encountering compiler errors. Factors
considered include Stack Overflow search methods and the impact of model
version and prompt phrasing when using large language models. The results
reveal that GPT-4 outperforms Stack Overflow in explaining compiler error
messages, the effectiveness of adding code snippets to Stack Overflow searches
depends on the search method, and results for Stack Overflow differ
significantly between Google and StackExchange API searches. Furthermore, GPT-4
surpasses GPT-3.5, with "How to fix" prompts yielding superior outcomes to
"What does this error mean" prompts. These results offer valuable guidance for
programmers seeking assistance with compiler error messages, underscoring the
transformative potential of advanced large language models like GPT-4 in
debugging and opening new avenues of exploration for researchers in AI-assisted
programming
In War and Peace: The Impact of World Politics on Software Ecosystems
Reliance on third-party libraries is now commonplace in contemporary software
engineering. Being open source in nature, these libraries should advocate for a
world where the freedoms and opportunities of open source software can be
enjoyed by all. Yet, there is a growing concern related to maintainers using
their influence to make political stances (i.e., referred to as protestware).
In this paper, we reflect on the impact of world politics on software
ecosystems, especially in the context of the ongoing War in Ukraine. We show
three cases where world politics has had an impact on a software ecosystem, and
how these incidents may result in either benign or malignant consequences. We
further point to specific opportunities for research, and conclude with a
research agenda with ten research questions to guide future research
directions.Comment: Accepted to ESEC/FSE as a vision pape
Application of Collaborative Learning Paradigms within Software Engineering Education: A Systematic Mapping Study
Collaboration is used in Software Engineering (SE) to develop software.
Industry seeks SE graduates with collaboration skills to contribute to
productive software development. SE educators can use Collaborative Learning
(CL) to help students develop collaboration skills. This paper uses a
Systematic Mapping Study (SMS) to examine the application of the CL educational
theory in SE Education. The SMS identified 14 papers published between 2011 and
2022. We used qualitative analysis to classify the papers into four CL
paradigms: Conditions, Effect, Interactions, and Computer-Supported
Collaborative Learning (CSCL). We found a high interest in CSCL, with a shift
in student interaction research to computer-mediated technologies. We discussed
the 14 papers in depth, describing their goals and further analysing the CSCL
research. Almost half the papers did not achieve the appropriate level of
supporting evidence; however, calibrating the instruments presented could
strengthen findings and support multiple CL paradigms, especially opportunities
to learn at the social and community levels, where research was lacking. Though
our results demonstrate limited CL educational theory applied in SE Education,
we discuss future work to layer the theory on existing study designs for more
effective teaching strategies.Comment: 7 page
Beyond Accuracy: Assessing Software Documentation Quality
Good software documentation encourages good software engineering, but the
meaning of "good" documentation is vaguely defined in the software engineering
literature. To clarify this ambiguity, we draw on work from the data and
information quality community to propose a framework that decomposes
documentation quality into ten dimensions of structure, content, and style. To
demonstrate its application, we recruited technical editors to apply the
framework when evaluating examples from several genres of software
documentation. We summarise their assessments -- for example, reference
documentation and README files excel in quality whereas blog articles have more
problems -- and we describe our vision for reasoning about software
documentation quality and for the expansion and potential of a unified quality
framework.Comment: to appear in the Visions and Reflections Track of the ACM Joint
European Software Engineering Conference and Symposium on the Foundations of
Software Engineering 202
- …